#Boa:Dialog:Dialog1

import wx
import wx.stc
import wx.gizmos
import wx.richtext
import wx.grid
import consultasBD
import utiles
from decimal import Decimal
import Image
import os
import shutil

ROJO = (255, 145, 145, 255)
VERDE = (145, 255, 145, 255)
AZUL = (145, 145, 255, 255)
BLANCO = (255, 255, 255, 255)
AMARILLO = (254, 248, 191, 255)
GRIS = ( 220, 220, 220, 255)
NEGRO = ( 0, 0, 0, 255)
VERDENEGRO = ( 47, 79, 79, 255)

##width_s = 480
##height_s = 320
width_s = 160
height_s = 100
width_rs = 800
height_rs = 533

def create(parent):
    return Dialog1(parent)

[wxID_DIALOG1, wxID_DIALOG1BUTTON1, wxID_DIALOG1BUTTON3, 
 wxID_DIALOG1CHECKBOX1, wxID_DIALOG1STATICTEXT1, wxID_DIALOG1STATICTEXT10, 
 wxID_DIALOG1STATICTEXT11, wxID_DIALOG1STATICTEXT12, wxID_DIALOG1STATICTEXT13, 
 wxID_DIALOG1STATICTEXT15, wxID_DIALOG1STATICTEXT18, wxID_DIALOG1STATICTEXT2, 
 wxID_DIALOG1STATICTEXT3, wxID_DIALOG1STATICTEXT4, wxID_DIALOG1STATICTEXT6, 
 wxID_DIALOG1STATICTEXT7, wxID_DIALOG1STATICTEXT8, wxID_DIALOG1STATICTEXT9, 
 wxID_DIALOG1STYLEDTEXTCTRL1, wxID_DIALOG1TEXTCTRL1, wxID_DIALOG1TEXTCTRL10, 
 wxID_DIALOG1TEXTCTRL11, wxID_DIALOG1TEXTCTRL12, wxID_DIALOG1TEXTCTRL15, 
 wxID_DIALOG1TEXTCTRL2, wxID_DIALOG1TEXTCTRL3, wxID_DIALOG1TEXTCTRL4, 
 wxID_DIALOG1TEXTCTRL5, wxID_DIALOG1TEXTCTRL6, wxID_DIALOG1TEXTCTRL7, 
 wxID_DIALOG1TEXTCTRL8, wxID_DIALOG1TEXTCTRL9, 
] = [wx.NewId() for _init_ctrls in range(32)]

class Dialog1(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG1, name='', parent=prnt,
              pos=wx.Point(163, 104), size=wx.Size(616, 498),
              style=wx.DEFAULT_DIALOG_STYLE, title='Agregar producto')
        self.SetClientSize(wx.Size(608, 471))

        self.staticText1 = wx.StaticText(id=wxID_DIALOG1STATICTEXT1,
              label='Proveedor', name='staticText1', parent=self,
              pos=wx.Point(272, 8), size=wx.Size(50, 13), style=0)

        self.staticText2 = wx.StaticText(id=wxID_DIALOG1STATICTEXT2,
              label='Cod.Sussan', name='staticText2', parent=self,
              pos=wx.Point(8, 8), size=wx.Size(57, 13), style=0)

        self.staticText3 = wx.StaticText(id=wxID_DIALOG1STATICTEXT3,
              label='Descripcion', name='staticText3', parent=self,
              pos=wx.Point(72, 8), size=wx.Size(54, 13), style=0)

        self.staticText4 = wx.StaticText(id=wxID_DIALOG1STATICTEXT4,
              label='Estacion', name='staticText4', parent=self,
              pos=wx.Point(464, 8), size=wx.Size(40, 13), style=0)

        self.staticText6 = wx.StaticText(id=wxID_DIALOG1STATICTEXT6,
              label='Anio', name='staticText6', parent=self, pos=wx.Point(552,
              8), size=wx.Size(21, 13), style=0)

        self.staticText7 = wx.StaticText(id=wxID_DIALOG1STATICTEXT7,
              label='Rubro', name='staticText7', parent=self, pos=wx.Point(72,
              48), size=wx.Size(29, 13), style=0)

        self.staticText8 = wx.StaticText(id=wxID_DIALOG1STATICTEXT8,
              label='Grupo', name='staticText8', parent=self, pos=wx.Point(72,
              88), size=wx.Size(29, 13), style=0)

        self.staticText9 = wx.StaticText(id=wxID_DIALOG1STATICTEXT9,
              label='Descripcion particular', name='staticText9', parent=self,
              pos=wx.Point(304, 88), size=wx.Size(102, 13), style=0)

        self.staticText10 = wx.StaticText(id=wxID_DIALOG1STATICTEXT10,
              label='Precio', name='staticText10', parent=self,
              pos=wx.Point(232, 384), size=wx.Size(29, 13), style=0)

        self.staticText11 = wx.StaticText(id=wxID_DIALOG1STATICTEXT11,
              label='Precio WEB', name='staticText11', parent=self,
              pos=wx.Point(304, 384), size=wx.Size(54, 13), style=0)

        self.staticText12 = wx.StaticText(id=wxID_DIALOG1STATICTEXT12,
              label='SKU', name='staticText12', parent=self, pos=wx.Point(304,
              48), size=wx.Size(19, 13), style=0)

        self.staticText13 = wx.StaticText(id=wxID_DIALOG1STATICTEXT13,
              label='Nombre', name='staticText13', parent=self,
              pos=wx.Point(376, 48), size=wx.Size(37, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL1, name='textCtrl1',
              parent=self, pos=wx.Point(8, 24), size=wx.Size(64, 21), style=0,
              value='')
        self.textCtrl1.SetEditable(False)

        self.textCtrl2 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL2, name='textCtrl2',
              parent=self, pos=wx.Point(72, 24), size=wx.Size(200, 21), style=0,
              value='')
        self.textCtrl2.SetEditable(False)

        self.textCtrl3 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL3, name='textCtrl3',
              parent=self, pos=wx.Point(272, 24), size=wx.Size(176, 21),
              style=0, value='')
        self.textCtrl3.SetEditable(False)

        self.textCtrl4 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL4, name='textCtrl4',
              parent=self, pos=wx.Point(464, 24), size=wx.Size(80, 21), style=0,
              value='')
        self.textCtrl4.SetEditable(False)

        self.textCtrl5 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL5, name='textCtrl5',
              parent=self, pos=wx.Point(552, 24), size=wx.Size(40, 21), style=0,
              value='')
        self.textCtrl5.SetEditable(False)

        self.textCtrl6 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL6, name='textCtrl6',
              parent=self, pos=wx.Point(72, 64), size=wx.Size(152, 21), style=0,
              value='')
        self.textCtrl6.SetEditable(False)

        self.textCtrl7 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL7, name='textCtrl7',
              parent=self, pos=wx.Point(72, 104), size=wx.Size(136, 21),
              style=0, value='')
        self.textCtrl7.SetEditable(False)

        self.textCtrl8 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL8, name='textCtrl8',
              parent=self, pos=wx.Point(232, 400), size=wx.Size(64, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')
        self.textCtrl8.SetEditable(False)

        self.textCtrl11 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL11,
              name='textCtrl11', parent=self, pos=wx.Point(376, 64),
              size=wx.Size(216, 21), style=0, value='')
        self.textCtrl11.Bind(wx.EVT_KILL_FOCUS, self.OnKillNombre)

        self.styledTextCtrl1 = wx.stc.StyledTextCtrl(id=wxID_DIALOG1STYLEDTEXTCTRL1,
              name='styledTextCtrl1', parent=self, pos=wx.Point(304, 104),
              size=wx.Size(288, 272), style=0)

        self.textCtrl10 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL10,
              name='textCtrl10', parent=self, pos=wx.Point(304, 64),
              size=wx.Size(72, 21), style=0, value='')
        self.textCtrl10.SetEditable(False)

        self.textCtrl9 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL9, name='textCtrl9',
              parent=self, pos=wx.Point(304, 400), size=wx.Size(64, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')

        self.textCtrl15 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL15,
              name='textCtrl15', parent=self, pos=wx.Point(376, 400),
              size=wx.Size(64, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')

        self.checkBox1 = wx.CheckBox(id=wxID_DIALOG1CHECKBOX1,
              label='Habilitado', name='checkBox1', parent=self,
              pos=wx.Point(520, 400), size=wx.Size(70, 13), style=0)
        self.checkBox1.SetValue(False)

        self.button1 = wx.Button(id=wxID_DIALOG1BUTTON1, label='Grabar',
              name='button1', parent=self, pos=wx.Point(72, 440),
              size=wx.Size(64, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnGuardar, id=wxID_DIALOG1BUTTON1)

        self.button3 = wx.Button(id=wxID_DIALOG1BUTTON3, label='Salir',
              name='button3', parent=self, pos=wx.Point(528, 440),
              size=wx.Size(64, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_DIALOG1BUTTON3)

        self.staticText15 = wx.StaticText(id=wxID_DIALOG1STATICTEXT15,
              label='Fecha Alta', name='staticText15', parent=self,
              pos=wx.Point(72, 384), size=wx.Size(51, 13), style=0)

        self.staticText18 = wx.StaticText(id=wxID_DIALOG1STATICTEXT18,
              label='Recomendado', name='staticText18', parent=self,
              pos=wx.Point(376, 384), size=wx.Size(68, 13), style=0)

        self.textCtrl12 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL12,
              name='textCtrl12', parent=self, pos=wx.Point(72, 400),
              size=wx.Size(72, 21), style=0, value='')
        self.textCtrl12.SetEditable(False)

    def __init__(self, parent,sku,fechaalta,nombre,descripcion,habilitado,\
                              precioweb,preciorec):
        self._init_ctrls(parent)
        codsussan,color = sku.split("-")
        fecha = fechaalta.split(" ")[0]

        self.textCtrl1.SetLabel(codsussan)
        self.textCtrl10.SetLabel(sku)
        self.textCtrl11.SetLabel(nombre)
        self.styledTextCtrl1.SetText(descripcion)
        self.textCtrl12.SetLabel(fecha)
        if habilitado=="SI":
            self.checkBox1.SetValue(True)
        self.llenarEncabezado(codsussan)
        self.textCtrl9.SetLabel(precioweb)
        self.textCtrl15.SetLabel(preciorec)
        self.textCtrl11.SetFocus()

    def OnKillNombre(self, event):
        texto = self.textCtrl11.GetLabel()
        if texto != "":
            texto = texto.upper()
            self.textCtrl11.SetLabel(texto)

    def llenarEncabezado(self,codsussan):
        r1 = "SELECT p.proveedor,pv.nombre,p.descri,p.preciolt1,p.estacion,p.anio, \n"
        r2 = "       p.grupo,g.nombregrupo,r.idrubro,r.nombrerubro \n"
        r3 = "FROM productos p, proveedor pv,grupos g,rubros r \n"
        r4 = "WHERE p.codsussan='"+codsussan+"' AND p.proveedor=pv.idproveedor "
        r5 = "      AND p.grupo=g.idgrupo AND p.grupo=r.idgrupo "
        sql = r1+r2+r3+r4+r5
        datos1 = consultasBD.ordenCrudaDict(sql)
        if len(datos1)==0 or datos1==None or datos1==():
            utiles.mensaje(None,"CODSUSSAN no encontrado")
            self.textCtrl1.SetLabel("")
            self.textCtrl1.SetFocus()
            return False
        item = datos1[0]
        descripcion = item["descri"]
        proveedor = item["nombre"]+" / "+str(item["proveedor"])
        estacion = item["estacion"]
        anio = str(item["anio"])
        rubro = item["nombrerubro"]+" / "+str(item["idrubro"])
        grupo = item["nombregrupo"]+" / "+str(item["grupo"])
        precio = str(item["preciolt1"])
        self.textCtrl2.SetLabel(descripcion)
        self.textCtrl3.SetLabel(proveedor)
        self.textCtrl4.SetLabel(estacion)
        self.textCtrl5.SetLabel(anio)
        self.textCtrl6.SetLabel(rubro)
        self.textCtrl7.SetLabel(grupo)
        self.textCtrl8.SetLabel(precio)
        self.textCtrl9.SetLabel(precio) #precio WEB
        self.textCtrl1.SetEditable(False)

        return True

    def OnSalir(self, event):
        self.Close()

    def confirma(self,texto):
        import Dialog2
        confirma = Dialog2.Dialog2(None, texto)
        try:
            confirma.ShowModal()
            if confirma.getSeleccion():
                seguir = True
            else:
                seguir = False
        except:
            confirma.Destroy()
            return False
        confirma.Destroy()
        return seguir

    def OnGuardar(self, event):
        if ";" in self.styledTextCtrl1.GetText():
            texto = "NO debe usar el simbolo ';' (punto y coma)\n"
            texto+= "dentro de la descripcion del producto."
            utiles.mensaje(None,texto)
            self.styledTextCtrl1.SetFocus()
            return
        nombre = self.textCtrl11.GetLabel()
        sku = self.textCtrl10.GetLabel()
        descripcion = self.styledTextCtrl1.GetText()
        precioweb = self.textCtrl9.GetLabel()
        preciorecomendado = self.textCtrl15.GetLabel()
        if self.checkBox1.GetValue():
            habilitado = "1"
        else:
            habilitado = "0"
        modificado = utiles.obtenerFecha("Y-m-d h:m:s")

        sql1 = "saskastore"
        r1 = "nombre='%s'," % (nombre)
        r2 = "descripcion='%s',precioweb='%s'," % (descripcion,precioweb)
        r3 = "preciorecomendado='%s',habilitado='%s' " % (preciorecomendado,habilitado)
        sql2 = r1+r2+r3
        sql3 = "sku='%s'"% (sku)
        consultasBD.executaUpdateSQL(self,sql1,sql2,sql3)

        sql1 = "saskastoremodf"
        sql2 = "modificado='%s',subido='0'" % (modificado)
        sql3 = "sku='%s'"% (sku)
        consultasBD.executaUpdateSQL(self,sql1,sql2,sql3)

        self.Close()
